---@class dns
local dns         = {
    -- 模块版本 (主版本.次版本.修订版本)
    VERSION              = '1.0.0',
    -- 作者备注 (更新日期 - 更新内容简述)
    AUTHOR_NOTE          = '2024-07-30 - Initial release',
    -- 模块名称
    MODULE_NAME          = '',
    -- 只读模式
    READ_ONLY            = false,
}
-- 实例对象
local this                 = dns
function this.runAsAdmin()
    -- 检查hosts文件大小
    local hostsPath = "C:\\Windows\\System32\\drivers\\etc\\hosts" -- 替换为你的hosts文件路径
    local file = io.open(hostsPath, "rb")
    if file then
        local size = file:seek("end")
        file:close()
        if size < 10240 then -- 10KB
            print("hosts文件大小小于10KB，执行刷dns。")
            -- 构造runas命令，使用shellexecute以管理员身份运行
            --C:\Users\1\Desktop\NightCrowsGnew\
            local adminCommand = main_ctx:c_fz_path() .. "Script\\flushDNS\\ExecuteFlushDns.bat"
            --print("以管理员身份执行命令：" .. adminCommand)
            local handle = io.popen(adminCommand)
            if handle then
                local result = handle:read("*a") -- 读取命令执行的输出
                handle:close()
                --print(result)                        -- 打印输出结果
                --else
                --    print("以管理员身份执行命令失败。")
            end
        else
            print("hosts文件大小大于或等于10KB，不刷新dns。")
        end
    else
        print("无法打开hosts文件。")
    end
end

return this
-- 调用函数以管理员身份运行批处理脚本
--runAsAdmin()
